namespace ext.util
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Provides precise pixel measurements for blocks of text so that you can determine exactly how high and
	/// wide, in pixels, a given block of text will be. Note that when measuring text, it should be plain text and
	/// should not contain any HTML, otherwise it may not be measured correctly.
	/// </summary>
	/// <definedin>src\util\TextMetrics.js</definedin>
	[ScriptName("TextMetrics")]
	[ScriptNamespace("Ext.util")]
	[Imported()]
	public partial class TextMetrics
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		internal TextMetrics()
		{
		}
		#endregion
		
		#region Methods
		/// <summary>
		/// Only available on the instance returned from {@link #createInstance}, not on the singleton. 
		/// Returns the size of the specified text based on the internal element&apos;s style and width properties
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;&lt;b&gt;Only available on the instance returned from {@link #createInstance}, &lt;u&gt;not&lt;/u&gt; on the singleton.&lt;/b&gt;&lt;/p&gt;
		/// Returns the size of the specified text based on the internal element&apos;s style and width properties
		/// </htmlSummary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="text">The text to measure</param>
		/// <returns>An object containing the text&apos;s size {width: (width), height: (height)}</returns>
		[ScriptName("getSize")]
		public object GetSize(string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Only available on the instance returned from {@link #createInstance}, not on the singleton. 
		/// Sets a fixed width on the internal measurement element. If the text will be multiline, you have
		/// to set a fixed width in order to accurately measure the text height.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;&lt;b&gt;Only available on the instance returned from {@link #createInstance}, &lt;u&gt;not&lt;/u&gt; on the singleton.&lt;/b&gt;&lt;/p&gt;
		/// Sets a fixed width on the internal measurement element. If the text will be multiline, you have
		/// to set a fixed width in order to accurately measure the text height.
		/// </htmlSummary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="width">The width to set on the element</param>
		[ScriptName("setFixedWidth")]
		public void SetFixedWidth(System.Number width)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Only available on the instance returned from {@link #createInstance}, not on the singleton. 
		/// Returns the measured width of the specified text
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;&lt;b&gt;Only available on the instance returned from {@link #createInstance}, &lt;u&gt;not&lt;/u&gt; on the singleton.&lt;/b&gt;&lt;/p&gt;
		/// Returns the measured width of the specified text
		/// </htmlSummary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="text">The text to measure</param>
		/// <returns>width The width in pixels</returns>
		[ScriptName("getWidth")]
		public System.Number GetWidth(string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Only available on the instance returned from {@link #createInstance}, not on the singleton. 
		/// Returns the measured height of the specified text. For multiline text, be sure to call
		/// {@link #setFixedWidth} if necessary.
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;&lt;b&gt;Only available on the instance returned from {@link #createInstance}, &lt;u&gt;not&lt;/u&gt; on the singleton.&lt;/b&gt;&lt;/p&gt;
		/// Returns the measured height of the specified text. For multiline text, be sure to call
		/// {@link #setFixedWidth} if necessary.
		/// </htmlSummary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="text">The text to measure</param>
		/// <returns>height The height in pixels</returns>
		[ScriptName("getHeight")]
		public System.Number GetHeight(string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Measures the size of the specified text</summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">
		/// The element, dom node or id from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </param>
		/// <param name="text">The text to measure</param>
		/// <param name="fixedWidth">
		/// If the text will be multiline, you have to set a fixed width
		/// in order to accurately measure the text height
		/// </param>
		/// <returns>An object containing the text&apos;s size {width: (width), height: (height)}</returns>
		[ScriptName("measure")]
		public object Measure(string el, string text, System.Number fixedWidth)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Measures the size of the specified text</summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">
		/// The element, dom node or id from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </param>
		/// <param name="text">The text to measure</param>
		/// <param name="fixedWidth">
		/// If the text will be multiline, you have to set a fixed width
		/// in order to accurately measure the text height
		/// </param>
		/// <returns>An object containing the text&apos;s size {width: (width), height: (height)}</returns>
		[ScriptName("measure")]
		public object Measure(System.Html.Element el, string text, System.Number fixedWidth)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Measures the size of the specified text</summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">
		/// The element, dom node or id from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </param>
		/// <param name="text">The text to measure</param>
		/// <returns>An object containing the text&apos;s size {width: (width), height: (height)}</returns>
		[ScriptName("measure")]
		public object Measure(string el, string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Measures the size of the specified text</summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">
		/// The element, dom node or id from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </param>
		/// <param name="text">The text to measure</param>
		/// <returns>An object containing the text&apos;s size {width: (width), height: (height)}</returns>
		[ScriptName("measure")]
		public object Measure(System.Html.Element el, string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces
		/// the overhead of multiple calls to initialize the style properties on each measurement.
		/// </summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">The element, dom node or id that the instance will be bound to</param>
		/// <param name="fixedWidth">
		/// If the text will be multiline, you have to set a fixed width
		/// in order to accurately measure the text height
		/// </param>
		/// <returns>instance The new instance</returns>
		[ScriptName("createInstance")]
		public ext.util.TextMetrics CreateInstance(string el, System.Number fixedWidth)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces
		/// the overhead of multiple calls to initialize the style properties on each measurement.
		/// </summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">The element, dom node or id that the instance will be bound to</param>
		/// <param name="fixedWidth">
		/// If the text will be multiline, you have to set a fixed width
		/// in order to accurately measure the text height
		/// </param>
		/// <returns>instance The new instance</returns>
		[ScriptName("createInstance")]
		public ext.util.TextMetrics CreateInstance(System.Html.Element el, System.Number fixedWidth)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces
		/// the overhead of multiple calls to initialize the style properties on each measurement.
		/// </summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">The element, dom node or id that the instance will be bound to</param>
		/// <returns>instance The new instance</returns>
		[ScriptName("createInstance")]
		public ext.util.TextMetrics CreateInstance(string el)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Return a unique TextMetrics instance that can be bound directly to an element and reused. This reduces
		/// the overhead of multiple calls to initialize the style properties on each measurement.
		/// </summary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">The element, dom node or id that the instance will be bound to</param>
		/// <returns>instance The new instance</returns>
		[ScriptName("createInstance")]
		public ext.util.TextMetrics CreateInstance(System.Html.Element el)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Only available on the instance returned from {@link #createInstance}, not on the singleton. 
		/// Binds this TextMetrics instance to an element from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;&lt;b&gt;Only available on the instance returned from {@link #createInstance}, &lt;u&gt;not&lt;/u&gt; on the singleton.&lt;/b&gt;&lt;/p&gt;
		/// Binds this TextMetrics instance to an element from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </htmlSummary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">The element, dom node or id</param>
		[ScriptName("bind")]
		public void Bind(string el)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Only available on the instance returned from {@link #createInstance}, not on the singleton. 
		/// Binds this TextMetrics instance to an element from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </summary>
		/// <htmlSummary>
		/// &lt;p&gt;&lt;b&gt;Only available on the instance returned from {@link #createInstance}, &lt;u&gt;not&lt;/u&gt; on the singleton.&lt;/b&gt;&lt;/p&gt;
		/// Binds this TextMetrics instance to an element from which to copy existing CSS styles
		/// that can affect the size of the rendered text
		/// </htmlSummary>
		/// <definedin>src\util\TextMetrics.js</definedin>
		/// <param name="el">The element, dom node or id</param>
		[ScriptName("bind")]
		public void Bind(System.Html.Element el)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
